package com.code.p9.工厂方法模式.P1简单工厂方法模式;

/**
 * 描述: describe
 *
 * @author CodeYang_Site
 * @version 2021/6/5 22:04
 */
public class 工厂模式 {

    /**
     * 工厂有很多变形和很多种
     * 1.简单工厂  工厂方法模式
     * 2.抽象工厂  抽象工厂模式
     *
     * @param args
     */
    public static void main(String[] args) {
        // new 一个工厂 对象,只需要传入简单的实现名称就可以拿到对象了
        ShapeFactory shapeFactory = new ShapeFactory();

        //获取 Circle 的对象，并调用它的 draw 方法
        Shape shape1 = shapeFactory.getShape("CIRCLE");

        //调用 Circle 的 draw 方法
        shape1.draw();

        //获取 Rectangle 的对象，并调用它的 draw 方法
        Shape shape2 = shapeFactory.getShape("RECTANGLE");

        //调用 Rectangle 的 draw 方法
        shape2.draw();

        //获取 Square 的对象，并调用它的 draw 方法
        Shape shape3 = shapeFactory.getShape("SQUARE");

        //调用 Square 的 draw 方法
        shape3.draw();
    }





}
